package com.dbh.innerclass;

import java.util.Objects;
import java.util.function.Predicate;

/**
 * Predicate
 *  是一个布尔类型的函数，该函数只有一个输入参数。Predicate接口包含了多种默认方法，
 *  用于处理复杂的逻辑动词（and, or，negate）
 * @author dongbanghui
 *
 * @date 2018/08/15
 */
public class PredicatesDemo {

    public static void main(String[] args) {
        Predicate<String> predicate = (s) -> s.length() > 0;
        System.out.println(predicate.test("foo"));
        System.out.println(predicate.negate().test("foo"));

        Predicate<Boolean> nonNull = Objects::nonNull;
        Predicate<Boolean> isNull = Objects::isNull;

        Predicate<String> isEmpty = String::isEmpty;
        Predicate<String> isNotEmpty = isEmpty.negate();

    }

}
